package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import manejadores.ManejadorAltaTension;

import censo.db;
import entidades.AltaTension;

/**
 * Servlet implementation class SrvTransformador
 */
@WebServlet(description = "Servlet Alta Tension", urlPatterns = { "/SrvAlta" })
public class SrvAlta extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SrvAlta() {
        super();
        // TODO Auto-generated constructor stub
    }
    
    protected void ProcesarPeticion(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
    	response.setContentType("text/html;charset=ISO-8859-1");
    	PrintWriter out = response.getWriter();

		String operacion = (String) request.getParameter("operacion");
		
		db conexion = null;
		
		try {
			if (operacion.equals("add")) {
				conexion = new db();
				
				String tramo_nodo_inicial = (String)request.getParameter("tramo_nodo_inicial");
				String tramo_nodo_final = (String)request.getParameter("tramo_nodo_final");
				String tramo_longitud = (String)request.getParameter("tramo_longitud");
				String apoyo_altura = (String)request.getParameter("apoyo_altura");
				String apoyo_cantidad = (String)request.getParameter("apoyo_cantidad");
				String apoyo_material = (String)request.getParameter("apoyo_material");
				String apoyo_estado = (String)request.getParameter("apoyo_estado");
				String estructura_tipo = (String)request.getParameter("estructura_tipo");
				String estructura_estado = (String)request.getParameter("estructura_estado");
				String aislamiento_tipo = (String)request.getParameter("aislamiento_tipo");
				String aislamiento_estado = (String)request.getParameter("aislamiento_estado");
				String conductor_material = (String)request.getParameter("conductor_material");
				String conductor_aislante = (String)request.getParameter("conductor_aislante");
				String conductor_calibre = (String)request.getParameter("conductor_calibre");
				String conductor_fases = (String)request.getParameter("conductor_fases");
				String conductor_estado = (String)request.getParameter("conductor_estado");
				String cantidad_usuarios = (String)request.getParameter("cantidad_usuarios");
				String elemento_proteccion = (String)request.getParameter("elemento_proteccion");
				String tipo = (String)request.getParameter("tipo");
				String tierra = (String)request.getParameter("tierra");
				String equipos = (String)request.getParameter("equipos");
				String notas = (String)request.getParameter("notas");
				String usuario = (String)request.getParameter("usuario");
				
				
				
				AltaTension alta = new AltaTension();
				alta.setTramo_nodo_inicial(tramo_nodo_inicial);
				alta.setTramo_nodo_final(tramo_nodo_final);
				alta.setTramo_longitud(tramo_longitud);
				alta.setApoyo_altura(apoyo_altura);
				alta.setApoyo_cantidad(apoyo_cantidad);
				alta.setApoyo_material(apoyo_material);
				alta.setApoyo_estado(apoyo_estado);
				alta.setEstructura_tipo(estructura_tipo);
				alta.setEstructura_estado(estructura_estado);
				alta.setAislamiento_tipo(aislamiento_tipo);
				alta.setAislamiento_estado(aislamiento_estado);
				alta.setConductor_material(conductor_material);
				alta.setConductor_aislante(conductor_aislante);
				alta.setConductor_calibre(conductor_calibre);
				alta.setConductor_fases(conductor_fases);
				alta.setConductor_estado(conductor_estado);
				alta.setCantidad_usuarios(cantidad_usuarios);
				alta.setElemento_proteccion(elemento_proteccion);
				alta.setTipo(tipo);
				alta.setTierra(tierra);
				alta.setEquipos(equipos);
				alta.setNotas(notas);
				alta.setUsuario(usuario);
				
				ManejadorAltaTension mat = new ManejadorAltaTension(alta,conexion);
				if (mat.Add()) {
					out.print("OK");
				}else {
					out.print("Error al procesar la solicitud");
				}
				
				
			}

			if (operacion.equals("update")) {
				conexion = new db();
				String tramo_nodo_inicial = (String)request.getParameter("tramo_inicial");
				String tramo_nodo_final = (String)request.getParameter("tramo_nodo_final");
				String tramo_longitud = (String)request.getParameter("tramo_longitud");
				String apoyo_altura = (String)request.getParameter("apoyo_altura");
				String apoyo_cantidad = (String)request.getParameter("apoyo_cantidad");
				String apoyo_material = (String)request.getParameter("apoyo_material");
				String apoyo_estado = (String)request.getParameter("apoyo_estado");
				String estructura_tipo = (String)request.getParameter("estructura_tipo");
				String estructura_estado = (String)request.getParameter("estructura_estado");
				String aislamiento_tipo = (String)request.getParameter("aislamiento_tipo");
				String aislamiento_estado = (String)request.getParameter("aislamiento_estado");
				String conductor_material = (String)request.getParameter("conductor_material");
				String conductor_aislante = (String)request.getParameter("conductor_aislante");
				String conductor_calibre = (String)request.getParameter("conductor_calibre");
				String conductor_fases = (String)request.getParameter("conductor_fases");
				String conductor_estado = (String)request.getParameter("conductor_estado");
				String cantidad_usuarios = (String)request.getParameter("cantidad_usuarios");
				String elemento_proteccion = (String)request.getParameter("elemento_proteccion");
				String tipo = (String)request.getParameter("tipo");
				String tierra = (String)request.getParameter("tierra");
				String equipos = (String)request.getParameter("equipos");
				String notas = (String)request.getParameter("notas");
				String usuario = (String)request.getParameter("usuario");
				String key = (String)request.getParameter("key");
				
				
				AltaTension alta = new AltaTension();
				alta.setTramo_nodo_inicial(tramo_nodo_inicial);
				alta.setTramo_nodo_final(tramo_nodo_final);
				alta.setTramo_longitud(tramo_longitud);
				alta.setApoyo_altura(apoyo_altura);
				alta.setApoyo_cantidad(apoyo_cantidad);
				alta.setApoyo_material(apoyo_material);
				alta.setApoyo_estado(apoyo_estado);
				alta.setEstructura_tipo(estructura_tipo);
				alta.setEstructura_estado(estructura_estado);
				alta.setAislamiento_tipo(aislamiento_tipo);
				alta.setAislamiento_estado(aislamiento_estado);
				alta.setConductor_material(conductor_material);
				alta.setConductor_aislante(conductor_aislante);
				alta.setConductor_calibre(conductor_calibre);
				alta.setConductor_fases(conductor_fases);
				alta.setConductor_estado(conductor_estado);
				alta.setCantidad_usuarios(cantidad_usuarios);
				alta.setElemento_proteccion(elemento_proteccion);
				alta.setTipo(tipo);
				alta.setTierra(tierra);
				alta.setEquipos(equipos);
				alta.setNotas(notas);
				alta.setUsuario(usuario);
				
				ManejadorAltaTension mat = new ManejadorAltaTension(alta,conexion);
				if (mat.Update(key)) {
					out.print("OK");
				}else {
					out.print("Error al procesar la solicitud");
				}
				
				
			}
			
			if (operacion.equals("remove")) {
				String key = (String)request.getParameter("key");
				ManejadorAltaTension mat = new ManejadorAltaTension(conexion);
				if (mat.Remove(key)) {
					out.print("OK");
				}else {
					out.print("Error al procesar la solicitud");
				}
			}

		
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			out.print("Error de conexion con el servidor: "
					+ e.getMessage());
		} finally { 
			if (conexion != null) {
				try {
					conexion.Close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					out.print(e.getMessage());
				}
			}
		}
		
		
		
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.ProcesarPeticion(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.ProcesarPeticion(request, response);
	}

}
